package org.wupgame.service;

import org.wupgame.model.Player;
import org.wupgame.model.RoomState;
import org.wupgame.model.e.Color;

public interface GameRule {
	
	boolean playCard(
		String roomId,
		Long playerId,
		String cardId,
		Color chosenColor,
		boolean isChallenge);
	
	void moveToNextPlayer(RoomState roomState);
	
	boolean drawCard(
		String roomId,
		Long playerId,
		boolean isChallenge);
	
	RoomState challengeWildDraw4(
		RoomState roomState,
		Long challengerId,
		boolean isChallenge);
	
	RoomState initializeGame(
		RoomState roomState,
		int defaultCreateNumber);
	
	boolean checkGameEnd(Player player);
}
